package com.zhengxing.jienci.user.service.rbac;


import com.zhengxing.jienci.user.domain.rbac.RoleResourceFunc;

import java.util.Collection;
import java.util.List;

/**
 * RoleResourceFuncService
 *
 * @author philbert
 * @version 1.00
 */
public interface RoleResourceFuncService {

    /**
     * 保存角色的权限
     *
     * @param roleId 角色主键
     * @param perms  权限
     */
    void savePerms(String roleId, String[] perms);

    /**
     * 根据角色主键集合删除权限
     *
     * @param roleIds 角色主键集合
     */
    void deleteByRoleIds(Collection<String> roleIds);

    /**
     * 根据资源主键集合删除权限
     *
     * @param resourceIds 资源主键集合
     */
    void deleteByResourceIds(Collection<String> resourceIds);

    /**
     * 根据资源功能主键集合删除权限
     *
     * @param resourceFuncIds 资源功能主键集合
     */
    void deleteByResourceFuncIds(Collection<String> resourceFuncIds);

    /**
     * 通过角色主键查询该角色所有的资源
     *
     * @param roleId 角色主键
     * @return 该角色所有的资源
     */
    List<RoleResourceFunc> findByRoleId(String roleId);

    /**
     * 通过资源主键查询该资源所属的所有角色
     *
     * @param resourceId 资源主键
     * @return 该资源所属的所有角色
     */
    List<RoleResourceFunc> findByResourceId(String resourceId);

}
